1. Technical Field of the Invention
The present invention relates to a method and apparatus for judging the necessity of performing an integration test for software components.
2. Related Art
In order to realize a specific function in machines or devices, a computer system is embedded in these machines or devices. Recently, a wide range of variations of such an embedded computer system is offered for one product line in order to meet users' various requests.
In the development of software of such an embedded computer system, a software product line (SPL) is attracting attention. The SPL is one of development methodologies, in which technology components are systematized for multiple products.
In the SPL, a requested specification is specified according to a feature model that is a data obtained from an analysis of a product. Specifically, the feature model defines a relationship between subdivided individual specifications (also referred to as features) of a product. According to the requested specification defined as mentioned above, core assets (reusable software components) that are available are appropriately combined to produce a specific product (application software). For example, refer to a patent document JP-A-2012-008660, or a non-patent document “Introduction of a Software Product Line in an Embedded System” written by Yoshimura et al., Information Processing, Vol. 50, No. 4, April 2009, pp., 295-302.
In the SPL, a software component provided as a core asset may be used alone or may be used in combination with other software component. In any case, such a core asset is required to be guaranteed to work to specification. For this purpose, it is necessary to perform an integration test in advance between software components.
Let us assume that there are n types of software components and that an integration test is performed for each of all two-component combinations of these n types of software components. In this case, the number of combinations is nC2. Practically, integration tests (also referred to as link tests) are required to be performed for three-component or more combinations of software components.
Specifically, as the number of software components is increased that is available as core assets, time and effort spent in the integration tests is significantly increased. Therefore, in practice, some measures may have to be taken against such a problem. For example, the integration test may be omitted for a combination of software components that would never be concurrently selected. However, if the necessity of performing an integration test is checked for each of combinations of software components when there are a tremendous number of such combinations, the labor of a worker will not be mitigated but, on the contrary, may be increased.